package com.suning.sawp.intf.yxwt;

import java.util.List;

import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.dto.mainpush.StoreManDto;
import com.suning.sawp.dto.yxwt.BatchUpdateRevisitInfo;
import com.suning.sawp.dto.yxwt.CateInfo;
import com.suning.sawp.dto.yxwt.OrderStaffInfo;
import com.suning.sawp.dto.yxwt.SaledNoPickDto;
import com.suning.sawp.po.yxwt.SaledNoTake;

/**
 * 
 * 已销未提
 *
 * @author 15050769
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface SaledNoTakeService {

    /**
     * 查询已销未提订单列表信息
     *
     * @param index
     * @param size
     * @param cateCode
     * @param storeCode
     * @param staffId
     * @param accessStatus
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<SaledNoTake>> queryOrderList(int index, int size, String cateCode, String storeCode, String staffId,
            String accessStatus);

    /**
     * 根据品类查询该门店已销未提统计结果
     *
     * @param cateCode
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<CateInfo>> queryCateInfo(String cateCode, String storeCode);

    /**
     * 根据门店信息查询该门店已销未提统计结果
     *
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<CateInfo>> queryCateInfoByStore(String storeCode);

    /**
     * 根据品类列表查询该门店已销未提统计结果
     *
     * @param storeMan
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<CateInfo>> queryCateInfoByCateCodeList(StoreManDto storeMan, String cateCode);
    
    
    /**
     * 根据角色查询已销未提统计结果
     *
     * @param storeMan
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<CateInfo>> queryCateInfoByCateCodeList(StoreManDto storeMan);

    /**
     * 根据订单更新对应的回访状态，如果 订单状态为1 则回访内容中为时间 YYYYMMDDHHMMSS 1.确定送货日期；2.不确定送货日期；3.无法联系客户；4异常订单
     * 
     * @param orderItemId
     * @param content
     * @param reVisitType
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> updateRevisit(String orderItemId, String content, String reVisitType);

    /**
     *  查询已销未提订单列表信息，根据回访状态查询
     *
     * @param index
     * @param size
     * @param cateCode
     * @param storeCode
     * @param staffId
     * @param accessStatus
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<SaledNoPickDto> queryOrderListByStatus(int index, int size, String cateCode, String storeCode,
            String staffId, String accessStatus);

    /**
     * 批量更新
     *
     * @param batchUpdateRevisitInfo
     * @param storeManDto 
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<String> batchUpdateRevisit(BatchUpdateRevisitInfo batchUpdateRevisitInfo, StoreManDto storeManDto);

    /**
     * 根据品类查询员工已销未提订单数量
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param catacode
     * @param storeManDto
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    ReturnMsg<List<OrderStaffInfo>> queryOrderCountByCata(String catacode, StoreManDto storeManDto);

}
